import os
from dotenv import load_dotenv
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain_community.llms import Tongyi

# 加载环境变量
load_dotenv()

def main():
    # 确保设置了通义千问 API密钥
    if not os.getenv("DASHSCOPE_API_KEY"):
        print("请设置DASHSCOPE_API_KEY环境变量或在.env文件中配置")
        return
    
    # 初始化语言模型
    llm = Tongyi(
        temperature=0.7,  # 控制输出的随机性
        model_name="qwen-turbo"  # 使用通义千问模型
    )
    
    # 创建对话链
    conversation = ConversationChain(
        llm=llm,
        memory=ConversationBufferMemory(),
        verbose=True  # 显示详细过程
    )
    
    # 开始对话
    print("\n欢迎使用LangChain聊天机器人! 输入'退出'结束对话。\n")
    
    while True:
        user_input = input("\n用户: ")
        if user_input.lower() in ["退出", "exit", "quit"]:
            print("\n谢谢使用，再见!")
            break
        
        # 获取回复
        response = conversation.predict(input=user_input)
        print(f"\nAI: {response}")

if __name__ == "__main__":
    main()